#if !defined(DXUT_DIRECT3D9_SUPPORT_H)
#define DXUT_DIRECT3D9_SUPPORT_H

#include "IDirect3D9Support.h"

class DXUTDirect3D9Support : public IDirect3D9Support
{
public:
	static DXUTDirect3D9Support *GetInstance();
	~DXUTDirect3D9Support() { }

	virtual bool IsDeviceAcceptable(D3DCAPS9 const *caps, D3DFORMAT adapterFormat, D3DFORMAT backBufferFormat, bool windowed);
	virtual HRESULT OnCreateDevice(IDirect3DDevice9 *device, D3DSURFACE_DESC const *backBufferSurfaceDesc);
	virtual HRESULT OnResetDevice(IDirect3DDevice9 *device, D3DSURFACE_DESC const *backBufferSurfaceDesc);
	virtual void OnFrameRender(IDirect3DDevice9 *device, double time, float elapsedTime);
	virtual void OnLostDevice();
	virtual void OnDestroyDevice();

private:
	DXUTDirect3D9Support();
};

#endif
